/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package br.com.PrimeFaces.negocio.bo;

import br.com.PrimeFaces.persistencia.jpa.dao.GenericDAO;

import java.io.Serializable;
import java.util.List;
/**
 *
 * @author Paulo
 */
public abstract class GenericBO<T, ID extends Serializable> {

    private GenericDAO dao;

    public GenericBO(GenericDAO dao) {
        this.dao = dao;
    }

    public GenericDAO getDao() {
        return dao;
    }

    public void setDao(GenericDAO dao) {
        this.dao = dao;
    }

    public T inserirEditar(T entidade) throws Exception{

        return (T) dao.inserirEditar(entidade);

    }

    public void deletar(T entidade) throws Exception {

        dao.deletar(entidade);

    }

    public T buscar(ID id) throws Exception{
        return (T) dao.buscar(id);

    }
    
    public T buscarOnde(String filtro) throws Exception{
        return (T) dao.buscarOnde(filtro);

    }

    public List<T> listar() throws Exception {
        return dao.listar();
    }  
    
    public List<T> listarOnde(String filtro) throws Exception {
        return dao.listar();
    }    
    
}
